An NAND flash memory is a non-volatile memory that can retain information even when power supply is stopped. The NAND flash memory is widely popular because it has better per-bit cost than other types of non-volatile memory. However, with increasing capacity and higher integration, influence of aged deterioration in written data and read-disturb have been becoming actualized in the NAND flash memory. There is increased risk of retained data becoming degraded and the stored data not being properly reproduced. The read-disturb refers to data corruption accompanying a reading process.
The aged deterioration is a phenomenon in which a floating gate that accumulates electric charge gradually loses electric charge with time progress, thereby causing data error. The read-disturb is a phenomenon in which an error occurs in stored data, because a minute amount of electric charge is accumulated in a floating gate of the memory cell adjacent to a memory cell from which data is read out.
Problems regarding the aged deterioration and the read-disturb can be solved by correct data being restored through use of an error correcting code that corrects data errors having occurred. However, because data in the NAND flash memory remains erroneous, the correct data cannot be restored when an error exceeding a correction capability of the error correcting code occurs as the aged deterioration and the read-disturb further proceed.
Complete destruction of data stored in the NAND flash memory can be prevented and data retaining period can be extended by a refresh operation in which rewriting data in the NAND flash memory is performed after stored data is read out and error correction is performed.
As a method of extending the data retaining period for data stored in the NAND flash memory by a refresh operation as mentioned above, for example, a method can be considered in which a number of times data is read out from the NAND flash memory and the like is counted. Then a refresh operation is performed when the number of times of readout reaches a specified number. Alternatively, a method can be considered in which a refresh operation is performed when an error count (the number of errors) increases (refer to, for example, Patent Document 1).
However, in the NAND flush memory, errors are less likely to occur in data in a memory cell in which the number of rewriting is smaller. The errors in data do not uniformly increase with an elapse of a certain, fixed amount of time. Similarly, in the NAND flash memory, errors in data do not always increase when data is read out more than a specified number of times. Therefore, when a refresh operation is uniformly performed based on the number of times data is read out, rather than based on reflection on an actual data corruption state, although data corruption becomes less likely to occur, the refresh operation is needlessly performed.
Furthermore, because the NAND flash memory is a device such that the number of rewriting is limited, life of the NAND flash memory is shortened by the refresh operation being needlessly performed.
On the other hand, when the refresh operation is performed through monitoring of the data corruption state, for example, a memory cell read-out operation itself that is performed to monitor the data corruption state requires an error correcting process to be performed. As a result, an amount of calculation performed and power consumption increase.    [Patent Document 1] Japanese Patent Application Laid-open No. 2004-326867
The present invention provides a semiconductor storage device that can efficiently perform a refresh operation.